﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO;
using ModuleDALCore;
using System.Data;

namespace DAL
{
	public class HANGBAOHIEMDAO:DALBase
	{
		public HANGBAOHIEMDAO()
		{
			this.OpenConnect();
		}

		private DataTable dt;
		private string _spName;

		public string spName
		{
			get { return "SPHANGBAOHIEM"; }
			set { _spName = value; }
		}

		public List<HANGBAOHIEM> getListHBH()
		{
			List<HANGBAOHIEM> hbh = new List<HANGBAOHIEM>();
			dt = new DataTable();

			try
			{
				dt = DBManager.Intance.ExecuteDataTable(spName, ConvertClassToArray.GetParamName(new HANGBAOHIEM(), null), ConvertClassToArray.GetValues(new HANGBAOHIEM(), 0));
				hbh = (List<HANGBAOHIEM>)ConvertDatatableToList.ConvertTo<HANGBAOHIEM>(dt);
			}
			catch
			{
				return null; //throw new Exception("Không thể tạo danh sách các hãng bảo hiểm!");
			}

			return hbh;
		}
		public DataTable getListHBHs()
		{
			dt = new DataTable();

			try
			{
				dt = DBManager.Intance.ExecuteDataTable(spName, ConvertClassToArray.GetParamName(new HANGBAOHIEM(), null), ConvertClassToArray.GetValues(new HANGBAOHIEM(), 0));
			}
			catch
			{
				return null; //throw new Exception("Không thể tạo danh sách các hãng bảo hiểm!");
			}

			return dt;
		}


		public String CreateNewID()
		{

			try
			{
				return "HBH" + DBManager.Intance.ExecuteNonQuery(spName, ConvertClassToArray.GetParamName(new HANGBAOHIEM(), null), ConvertClassToArray.GetValues(new HANGBAOHIEM(), 4));
			}
			catch { return null; }//throw new Exception("Msg1: Không thể tạo mã hãng bảo hiểm mới!"); }
		}

		public bool INSERT(HANGBAOHIEM hbh)
		{

			try
			{
				return (DBManager.Intance.ExecuteNonQuery(spName, ConvertClassToArray.GetParamName(hbh, null), ConvertClassToArray.GetValues(hbh, 1)) == 1);
			}
			catch { return false; }//throw new Exception("Msg1: Không thể tạo mục hãng bảo hiểm mới!"); }
		}

		public bool UPDATE(HANGBAOHIEM hbh)
		{
			try
			{
				return (DBManager.Intance.ExecuteNonQuery(spName, ConvertClassToArray.GetParamName(hbh, null), ConvertClassToArray.GetValues(hbh, 2)) == 1);
			}
			catch { return false; }//throw new Exception("Msg2: Không thể cập nhật mục hãng bảo hiểm này!"); }
		}
		public bool DELETE(HANGBAOHIEM hbh)
		{
			try
			{
				return (DBManager.Intance.ExecuteNonQuery(spName, ConvertClassToArray.GetParamName(hbh, null), ConvertClassToArray.GetValues(hbh, 3)) == 1);
			}
			catch { return false; }//throw new Exception("Msg3: Không thể xóa mục hãng bảo hiểm này!"); }
		}
	}
}